package cn.aic.pointInspect.sysquery;

import java.io.InputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import cn.aic.pointInspect.tools.MyBatisUtil;
import cn.aic.pointInspect.tools.Util;

/**
 * @author          liufei
 *
 * @Date            2018年7月11日-下午4:13:40
 *
 * @Descirption     AIC点巡检系统-数据查询接口
 * 
 *
 */
public interface DataProvider {
	
	/**
	 * @Description 查询组织机构
	 * @param guid
	 * @return
	 * @Date 2018年8月28日
	 */
	public Map queryXJOrgan(String guid);

	/**
	 * @Description 根据组织机构获取线路
	 * @param t_organization_r_guid 组织机构guid
	 * @return
	 * @Date 2018年8月28日
	 */
	public Map queryXJLineByOrgan(String t_organization_r_guid);
	
	/**
	 * @Description 根据线路获取设备
	 * @param t_organization_r_guid 组织机构guid
	 * @param t_line_r_guid 线路guid
	 * @return
	 * @Date 2018年8月28日
	 */
	public Map queryXJDeviceByLine(String t_organization_r_guid,String t_line_r_guid);
	
	/**
	 * @Description 根据设备获取巡检项
	 * @param t_organization_r_guid 组织机构guid
	 * @param t_line_r_guid 线路guid	
	 * @param t_device_r_guid 设备guid
	 * @return
	 * @Date 2018年8月28日
	 */
	public Map queryXJItemByDevice(String t_organization_r_guid,String t_line_r_guid,String t_device_r_guid);	
	
	/**
	 * @Description 获取巡检项数据
	 * @param alias_name
	 * @param t_organization_r_guid 组织机构guid
	 * @param t_line_r_guid 线路guid
	 * @param t_device_r_guid 设备guid
	 * @param t_item_r_guid 巡检项guid
	 * @param beginDate 查询开始时间
	 * @param endDate 查询结束时间
	 * @param is_special_inspection 是否特巡设备，=true是，=false不是。
	 * @param item_define 启停
	 * @param is_normal 正常，为true；异常，为false
	 * @param is_in_place 是否到位管理， =true是，=false否
	 * @param grade 控制等级
	 * @param devFullName 设备全名
	 * @param t_item_abnormal_grade_alarm_grade 报警等级
	 * @return
	 * @Date 2018年8月28日
	 */
	public Map queryAllDataOfXJ(String alias_name,String t_organization_r_guid,String t_line_r_guid,String t_device_r_guid,String t_item_r_guid,Date beginDate,Date endDate
			,String is_special_inspection,String item_define,String is_normal,String is_in_place,String grade,String devFullName,String t_item_abnormal_grade_alarm_grade,String t_measure_type_guid);	
	
	/**
	 * @Description 获取漏检数据
	 * @param beginDate 查询开始时间
	 * @param endDate 查询结束时间
	 * @param turnGuid 轮次guid
	 * @param lineGuid 线路guid
	 * @param isDeviceChecked 设备是否已检 true：已检 ； false：漏检
	 * @param t_organization_r_name
	 * @return 包含有returnDataList的Map
	 * @Date 2018年8月28日
	 */
	public Map queryLeakChectDataOfXJ(Date beginDate,Date endDate,String turnGuid,String lineGuid,Boolean isDeviceChecked,String t_organization_r_name);
	
	/**
	 * @Description 获取漏检数据个数
	 * @param beginDate 查询开始时间
	 * @param endDate 查询结束时间
	 * @param turnGuid 轮次guid
	 * @param lineGuid 线路guid
	 * @param isDeviceChecked 设备是否已检 true：已检 ； false：漏检
	 * @param t_organization_r_name  组织机构名称
	 * @return 包含有returnDataList的Map
	 * @Date 2018年8月28日
	 */
	public Map queryLeakChectCountOfXJ(Date beginDate,Date endDate,String turnGuid,String lineGuid,String isDeviceChecked,String t_organization_r_name);
	
	/**
	 * @Description 获取异常数据
	 * @param beginDate 查询开始时间
	 * @param endDate 查询结束时间
	 * @param t_organization_r_name 组织机构名称
	 * @return 
	 * @Date 2018年8月28日
	 */
	public Map queryAbnormalDataOfXJ(Date beginDate,Date endDate, String t_organization_r_name);

	/**
	 * @Description 获取异常数据个数
	 * @param beginDate 查询开始时间
	 * @param endDate 查询结束时间
	 * @param t_organization_r_name 组织机构名称
	 * @return
	 * @Date 2018年8月28日
	 */
	public Map queryAbnormalCountOfXJ(Date beginDate,Date endDate, String t_organization_r_name);
	
	/**
	 * @Description 获取缺陷数据个数
	 * @param beginDate 查询开始时间
	 * @param endDate 查询结束时间
	 * @param t_organization_r_name 组织机构名称
	 * @return
	 * @Date 2018年8月28日
	 */
	public Map queryFlawCountOfXJ(Date beginDate,Date endDate, String t_organization_r_name);
	
	/**
	 * @Description 获取缺陷数据
	 * @param beginDate 查询开始时间
	 * @param endDate 查询结束时间
	 * @param t_organization_r_name 组织机构名称
	 * @param flawType
	 * @return
	 * @Date 2018年8月28日
	 */
	public Map queryFlawDataOfXJ(Date beginDate,Date endDate, String t_organization_r_name, String flawType);	
	
	/**
	 * @Description 查询组织机构下的员工数据
	 * @param t_organization_r_guid 组织机构名称
	 * @return
	 * @Date 2018年8月28日
	 */
	public Map queryAllStaffDataOfXJ(String t_organization_r_guid);

	/**
	 * @Description 查询异常等级
	 * @return
	 * @Date 2018年8月28日
	 */
	public Map queryAllAbnormalGradeDataOfXJ();
	
	/**
	 * @Description 根据线路信息查询其下轮次
	 * @param t_line_r_guid 线路guid
	 * @param t_line_r_content_guid 线路内容guid
	 * @return 
	 * @Date 2018年9月4日
	 */
	public Map queryTurnByLineInfoOfXJ(String t_line_r_guid,String t_line_r_content_guid);
	

	/**
	 * @Description 查询巡检系统的测量类型
	 * @param t_measure_type_guid
	 * @return
	 * @Date 2018年12月24日
	 */
	public Map<String,Object> queryMeasureType(String t_measure_type_guid);
}
